﻿<h1>About the HQPad initiative</h1>
<section class="content">
    <h2>The idea</h2>
    <div class="block">
        <p class="first last">
             A long time ago, about the time the Heroquest LARP website was being revamped I overheard a conversation about
             getting all of the character management integrated with the website.  This seemed to me to be a worthy goal but
             also a mammoth amount of work!  This idea stayed with me, however, and from time to time I'd wonder what the
             best way was to represent parts of the data or how specific bits might be represented.
             <br />The more I thought,
             the more I could see the advantages in getting it done.  So, eventually, I set up a development project and did a little bit,
             then got distracted and then came back to it, then got distracted again.
             <br />Repeat ad infinitum.
             <br />The whole thing has gone on like that.
        </p>
    </div>

    <h2>The aims</h2>
    <div class="block">
        <p class="first">
            At the outset the aims of the HQPad initiative were fairly modest.
            <ul>
                <li>Move away from the old (but still very useful) excel spreadhseet into a shared environment. Although the spreadhseet has done
                pretty well in keeping pace with changes in the system, a centralised rule system would help eradicate the necessity of moving (and fixing)
                characters between different verisons fo the sheet.</li>
                <li>An updateable rule based system that allowed a central change in the rule to be instantly reflect across all characters.  The HQPad 
                system implments a architecture of 'Bonuses'.  For example a skill like Armoured Dex grants a bonus of 1 point of Armoured Dex.  Sounds 
                trivial, however, this allows any other arbitrary sources of bonuses to also contribute to the value of Armoured Dex such as items or 
                special abilities.</li>
                <li>Make character management more enjoyable and generally prettier.</li>
                <li>To allow characters to be imported from an existing HQML file.</li>
                <li>Keep the sense that characters can be played with ad-hoc without necessarily updating the saved character.  This is implemented as 
                the scratch pad where characters can be loaded and amended and only saved when required.  This mimics the capability of the spreadhseet 
                to be copied and amended over again.</li>
            </ul>
        </p>
        <p class="last">
            Going forward there is a whole bunch of stuff that could spring from HQPad.
            <ul>
                <li>Alternate battleboards for different class types.</li>
                <li>Allow a referee's section where a party's battleboards can be assembled and reviewed.</li>
                <li>Allow active spell and invocations to be assigned to a character and their in character effects reflected in the battleboard.</li>
                <li>An Android/iPhone version of the site.  As it stands it should work in smartphone broswers as is.</li>
                <li>A party app for managing a party during an adventure, with an interactive battleboard.</li>
                <li>Supply character data and functionality via a web service for further extension, possibly with backwards integration to the heroquest-larp.co.uk site.</li>
            </ul>
        </p>
    </div>

    <h2>The project</h2>
    <div class="block">
        <p class="first">
        If you want, there are a number of ways you can help out.
        The project is open source and hosted on google projects.  You can check it out at <a href="http://code.google.com/p/hq-character-pad/">http://code.google.com/p/hq-character-pad/</a>.
        </p>
        <p>
        There is an issue tracking section where you can log and problems you find.  You'll need to be added to the project to do this and therefore have a google account.
        Mail me (<a href="admin@hqpad.org.uk">admin@hqpad.org.uk</a>) with your google account email and I'll happily add you to the project.
        </p>
        <p>
        You can download the code and view it for yourself if you are so inclined and if you want to get involved as a developer then let me know and we can take it from there.
        </p>
        <p class="last">
        If you want to see what changes there are inthe pipeline then you should hop over to the projects Trello page <a href="https://trello.com/b/GJo4xGPo">https://trello.com/b/GJo4xGPo</a>.
        <br />There you can see what features are in the pipeline, merely been imagined or have not yet been thought of.  There is no public access to this board but if you have a good idea then
        let me know at <a href="admin@hqpad.org.uk">admin@hqpad.org.uk</a>.
        </p>
    </div>

    <h2>Tech stuff</h2>
    <div class="block">
        <p class="first last">
            If you're like me, then you'll want to know what going on under the hood.  Well here's a peek at how this thing is built and what technolgies it's using.
            <ul>
                <li>Data access is from a <em>MS SQL Server Express</em> database using the <em>Entity Framework 4.0</em> ORM.  EF4, using the code first approach, was very helpful 
                in getting over the first hump of getting the first rules data into the system.</li>
                <li><em>C#</em> and the <em>Visual Studio</em> development environment.</li>
                <li><em>ASP.NET MVC3</em>.  This is way better than old forms model in my opinion, at least from a developers point of view ;-)</li>
                <li><em>HTML5</em>, well some of it at least.  The markup and CSS has been kept as lightweight as possible.  Also the site is designed 
                for modern browsers, specifically <em>Chrome</em>, <em>FF15</em> and <em>IE9+</em> so if you don't have one of those it'll be, as they say, 
                <em>degraded</em>.</li>
                <li>JQuery javascript library.  There is also a fair amount of Ajax on the site, mostly hand rolled using the JQuery ajax object.  I find
                this a much more flexible and understandable approach than the MS built in equivalents.</li>
                <li>Dynamic font embedding to avoid all that pesky image creation that is often such a bane to web development.</li>
            </ul>
        </p>
    </div>
</section>